Byte Code Engineering
نویسنده
چکیده
The term “Java” is used to denote two different concepts: the language itself and the related execution environment, the Java Virtual Machine (JVM), which executes byte code instructions. Several research projects deal with byte code-generating compilers or the implementation of new features via byte code transformations. Examples are code optimization, the implementation of parameterized types for Java, or the adaptation of run-time behavior through load-time transformations. Many programmers are doing this by implementing their own specialized byte code manipulation tools, which are, however, restricted in the range of their reusability. Therefore, we have developed a general purpose framework for the static analysis and dynamic creation or transformation of byte code. In this paper we present its main features and possible application areas.
منابع مشابه
JConstHide: A Framework for Java Source Code Constant Hiding
Software obfuscation or obscuring a software is an approach to defeat the practice of reverse engineering a software for using its functionality illegally in the development of another software. Java applications are more amenable to reverse engineering and re-engineering attacks through methods such as decompilation because Java class files store the program in a semi complied form called 'byt...
متن کاملUsing Oo Metrics and Rigi to Evaluate Java Software Using Oo Metrics and Rigi to Evaluate Java Software Using Oo Metrics and Rigi to Evaluate Java Software
A prototype reverse engineering environment has been built to support understanding an existing Java software. The static software artifacts and their dependencies are extracted from Java byte code and viewed with Rigi reverse engineering environment as a nested graph. Several software metric values can be calculated from the byte code and analyzed with Rigi. The metric values can be used to st...
متن کاملThe Superdiversifier: Peephole Individualization for Software Protection
We present a new approach to individualize programs at the machineand byte-code levels. Our superdiversification methodology is based on the compiler technique of superoptimization, which performs a brute-force search over all possible short instruction sequences to find minimum-size implementations of desired functions. Superdiversification also searches for equivalent code sequences, but we g...
متن کاملNibbling Java Byte Code for Resource-Critical Devices
This work describes a method that makes the Java instruction as small as possible. The proposed method, called "nibble coding", compresses two instructions into one byte. The experiment is carried out to compare Java byte code instruction and a modified code with the nibble coding. The result shows the proposed scheme achieves a much smaller instruction bandwidth than the ordinary byte-code cou...
متن کاملGenerating Eecient Stack Code for Java
Optimizing Java byte code is complicated by the fact that it uses a stack-based execution model. Changing the intermediate representation from the stack-based to the register-based one brings the problem of Java byte code optimizations into well-studied domain of compiler optimizations for register-based codes. In this paper we describe the technique to convert a register-based code into the Ja...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1999